Re: Multiple open ResultSets not allowed? - Mailing list pgsql-jdbc

From Jeff Kolesky
Subject Re: Multiple open ResultSets not allowed?
Date
Msg-id a05200f03ba9baebec1d8@[192.168.1.9]
Whole thread Raw
In response to Re: Multiple open ResultSets not allowed?  (Barry Lind <blind@xythos.com>)
Responses Re: Multiple open ResultSets not allowed?
List pgsql-jdbc
Just to make sure I wasn't looking at the code incorrectly, I wrote
the following test code, making sure not to close the connection
before trying to get data from the result set:

     Connection con = DB.getConnection();
     Statement s1 = con.createStatement();
     ResultSet rs1 = s1.executeQuery("SELECT * FROM table1");
     while(rs1.next())
     {
         String col = rs1.getString("col");
         System.out.println(col);
         Statement s2 = con.createStatement();
         ResultSet rs2 = s2.executeQuery("SELECT * FROM table2");
         while(rs2.next())
         {
             String col2 = rs2.getString("col");
             System.out.println("\t" + col2);
         }
         rs2.close();
         s2.close();
     }
     rs1.close();
     s1.close();
     con.close();

Running this code throws the same exception.  Looks like the
connection is being closed incorrectly by the driver, or more likely
that ResultSet data (Vector rows) is being set to null somehow.

Any other ideas?

Thanks.

Jeff


At 7:55 PM -0800 3/14/03, Barry Lind wrote:
>The error message says that the Connection is closed.  You can't use
>a statement or result set after the connection that owns them is
>closed. This is part of the jdbc spec, and I think logic in the
>driver was tightened up in this area in 7.3.
>
>thanks,
>--Barry
>
>
>Jeff Kolesky wrote:
>>I have just switched to using the 7.3 JDBC driver and am no longer
>>allowed to have multiple ResultSets open at the same time.
>>
>>When running code that iterates through two open ResultSets (from
>>two different Statements from the same Connection), the following
>>exception is thrown:
>>
>>     Connection is closed. Operation is not permitted.
>>         at org.postgresql.jdbc1.AbstractJdbc1ResultSet.next
>>(AbstractJdbc1ResultSet.java:92)
>>
>>I haven't looked at the AbstractJdbc1ResultSet code to see what is
>>going on, but according to the JDBC Javadocs, "if the reading of
>>one ResultSet object is interleaved with the reading of another,
>>each must have been generated by different Statement objects."
>>Therefore, the code I am executing should not throw this exception,
>>and with the previous version of the driver it did not.
>>
>>Is this a known bug?  Has it been fixed?  Did I misinterpret the Javadocs?
>>
>>Thanks.
>>
>>Jeff
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 6: Have you searched our list archives?
>>
>>http://archives.postgresql.org
>>
>
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)


pgsql-jdbc by date:

Previous
From: "Tim Lucia"
Date:
Subject: Re: Multiple open ResultSets not allowed?
Next
From: Rich Cullingford
Date:
Subject: Re: Multiple open ResultSets not allowed?